28.1.1.2 Supported Version Control
Systems
VC currently works with many different version control
systems, which it refers to as back ends:
- SCCS was the
first version control system ever built, and was long ago
superseded by more advanced ones. VC compensates for certain
features missing in SCCS (e.g., tag names for releases) by
implementing them itself. Other VC features, such as multiple
branches, are simply unavailable. Since SCCS is non-free, we
recommend avoiding it.
- CSSC is a free
replacement for SCCS. You should use CSSC only if, for some
reason, you cannot use a more recent and better-designed
version control system.
- RCS is the free
version control system around which VC was initially built. It
is relatively primitive: it cannot be used over the network,
and works at the level of individual files. Almost everything
you can do with RCS can be done through VC.
- CVS is the free
version control system that was, until recently (circa 2008),
used by the majority of free software projects. Nowadays, it is
slowly being superseded by newer systems. CVS allows concurrent
multi-user development either locally or over the network.
Unlike newer systems, it lacks support for atomic commits and
file moving/renaming. VC supports all basic editing operations
under CVS.
- Subversion (svn)
is a free version control system designed to be similar to CVS
but without its problems (e.g., it supports atomic commits of
filesets, and versioning of directories, symbolic links,
meta-data, renames, copies, and deletes).
- Git is a
decentralized version control system originally invented by
Linus Torvalds to support development of Linux (his kernel). VC
supports many common Git operations, but others, such as
repository syncing, must be done from the command line.
- Mercurial (hg) is a
decentralized version control system broadly resembling Git. VC
supports most Mercurial commands, with the exception of
repository sync operations.
- Bazaar (bzr) is a
decentralized version control system that supports both
repository-based and decentralized versioning. VC supports most
basic editing operations under Bazaar.
- SRC (src) is RCS, reloaded - a specialized
version-control system designed for single-file projects worked
on by only one person. It allows multiple files with
independent version-control histories to exist in one
directory, and is thus particularly well suited for maintaining
small documents, scripts, and dotfiles. While it uses RCS for
revision storage, it presents a modern user interface featuring
lockless operation and integer sequential version numbers. VC
supports almost all SRC operations.